feat(rokt-sdk-plus): add com.rokt:rokt-sdk-plus umbrella artifact#721
feat(rokt-sdk-plus): add com.rokt:rokt-sdk-plus umbrella artifact#721thomson-t wants to merge 1 commit into
Conversation
Introduce a single Android dependency that bundles the mParticle core SDK, the mParticle Rokt kit, and the Rokt Payment Extension (Shoppable Ads), mirroring the iOS RoktSDKPlus umbrella. Partners adopting Shoppable Ads can depend on one artifact instead of wiring up core + kit + payment extension by hand. - New rokt-sdk-plus module: thin com.android.library (empty AAR) that api-aggregates android-core, android-rokt-kit, and com.rokt:payment-extension, plus a RoktSdkPlus version constant. The mParticle Rokt kit deliberately omits the payment extension; this umbrella is what adds it on top. - Published as com.rokt:rokt-sdk-plus via an isolated settings-rokt-sdk-plus.gradle so it builds/publishes in its own Gradle invocation with Rokt Maven Central credentials. - Centralize the Rokt SDK / payment extension versions in gradle.properties (roktSdkVersion, roktPaymentExtensionVersion); the Rokt kit now reads roktSdkVersion. - Extend the publish convention plugin with optional POM url/license overrides (backward-compatible) so the com.rokt artifact carries Rokt branding. - release-publish.yml: publish the Rokt kit to mavenLocal so the umbrella resolves its mParticle deps locally (avoiding Maven Central propagation races), then publish the umbrella to Central with the Rokt credentials. The umbrella version tracks the mParticle SDK line; the bundled Rokt artifacts ride their own line. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
PR SummaryMedium Risk Overview The module is built via isolated
Reviewed by Cursor Bugbot for commit 6bbb68e. Bugbot is set up for automated code reviews on this repo. Configure here. |
|



Background
iOS ships a single umbrella pod/SPM package,
RoktSDKPlus, that bundles the mParticle core SDK, the mParticle Rokt kit, and the Rokt Payment Extension. This PR adds the Android equivalent so partners adopting Rokt Shoppable Ads can depend on one artifact instead of wiring up core + kit + payment extension by hand, with versions guaranteed to be compatible.The mParticle Rokt kit deliberately does not pull
com.rokt:payment-extension(or Stripe) transitively (see #713) — apps that don't need Shoppable Ads stay lightweight.rokt-sdk-plusis the artifact that adds it on top.What changed
rokt-sdk-plus/module — a thincom.android.library(empty AAR) thatapi-aggregatesandroid-core,android-rokt-kit, andcom.rokt:payment-extension, plus aRoktSdkPlus.VERSIONconstant. It is an aggregator, not a kit, so it applies the publish convention plugin directly (notcom.mparticle.kit).com.rokt:rokt-sdk-plusvia an isolatedsettings-rokt-sdk-plus.gradle, so it builds/publishes in its own Gradle invocation with the Rokt Maven Central credentials (separate from thecom.mparticlesecrets).gradle.properties(roktSdkVersion,roktPaymentExtensionVersion); the Rokt kit now readsroktSdkVersioninstead of hardcoding it.url/license overrides (backward-compatible) so thecom.roktartifact carries Rokt branding.release-publish.yml— publish the Rokt kit to mavenLocal so the umbrella resolves its mParticle deps locally (avoiding a Maven Central propagation race), then publish the umbrella to Central with the Rokt credentials.Versioning
The umbrella version tracks the mParticle SDK release line (shared with
android-core/android-rokt-kit). The bundled Rokt artifacts (roktsdk/payment-extension) ride their own Rokt line, pinned via the sharedgradle.propertiesproperties.Resulting dependency closure (verified locally)
Validation
:rokt-sdk-plus:publishMavenPublicationToMavenLocalsucceeds; POM validation passes; coordinatescom.rokt:rokt-sdk-plus(packagingaar), Rokt license/URL, threeapideps with the two version lines correct; sources jar + stub javadoc jar + Gradle module metadata produced.com.rokt:rokt-sdk-plusresolves the full closure above with no failures.roktsdkvia the new property.com.rokt:payment-extensionis not yet on Maven Central (zero versions published). The publish step will fail until the ROKT team publishespayment-extension(and a matchingroktsdk) to Central. Verified locally against a mavenLocal build of the payment extension.ROKT_*repo secrets (ROKT_MAVEN_CENTRAL_SIGNING_KEY,ROKT_MAVEN_CENTRAL_SIGNING_KEY_PASSWORD,ROKT_SONATYPE_NEXUS_USERNAME,ROKT_SONATYPE_NEXUS_PASSWORD) with verifiedcom.roktCentral Portal namespace access.registerPaymentExtension/selectShoppableAdsfacade referenced in the README and bumps the roktsdk line; expect a one-line merge conflict inkits/rokt/rokt/build.gradle(resolve by keeping the property and bumpinggradle.properties).Notes
kotlin-stdlibtransitively.6.0.1-rc.1(the latestroktsdkon Central;rc.2does not exist).🤖 Generated with Claude Code